#ifndef CSTATICOBJECT_H
#define CSTATICOBJECT_H
/*************************************************
 ** Purpose: To provide a base class for the 
 ** objects wich do not move within the game 
 ** world. However each object will have there
 ** own state which will assist with driving the
 ** mechanics of the game.
 *************************************************/
#include "Vector3D.h"
#include "cAABB.h"

class cStaticObject
{
	public:
		//Interface for the static object abstract class
		cStaticObject(int type = -1);

		~cStaticObject();
	
		//Accessors
		char		getType() { return m_type; }
		Vector3D	getPosition() { return m_position; }
		AABB		getBound() { return m_bound; }
		bool		IsOnScreen() { return m_bIsOnScreen; }

		//Mutators
		void		setType(char type) { m_type = type; }
		void		setOnScreen(bool bIsOnScreen) { m_bIsOnScreen = bIsOnScreen; }

	protected:
		//Holds the position of the object
		Vector3D		m_position;

		//Holds the bounding object of the object
		AABB			m_bound;

	private:
		//Represents the type of object which is being held
		int				m_type;

		//Check to see if the object is visible
		bool			m_bIsOnScreen;
};
#endif